1. Field of the Invention
The present invention relates to computer networks in general and more particularly to protocols and techniques that improve the flow of information within said networks.
2. Prior Art
The use of computer network systems for processing and transmitting data is well known in the prior art. A typical computer network system consists of at least one host computer running under some type of operating system, communication controllers, communications media and a plurality of end users (terminals, printers, displays, etc.). The host computer is connected, via communications media, to either a communication controller or an end user terminal. The communication controller interfaces with other communication controllers or end user terminals via communications media. The communications media may be telephone lines, channels, satellites, etc. By entering a request at a user's terminal, the user may extract data from the host computer. Similarly, a user may enter information on a terminal and have it transmitted to the host computer for processing and/or to another terminal in the network.
In addition to the physical structure, the prior art computing systems are controlled by a system architecture which ensures the orderly flow of information throughout the system. The prior art describes several types of architectures. For example, an overview of the architecture used in computer networks is given in an article entitled, "Computer Network Architecture," by S. Wecker in Computer, September 1979. Another overview, including a description of System Network Architecture (SNA) is given in an article entitled, "An Introduction to Network Architectures and Protocols," by P. E. Green and printed in the IBM Systems Journal, Vol. 18, No. 2, 1979. In these articles, the various computer networks such as SNA, DNA, ARPANET, etc. are described by means of hierarchical architectural layers, where the lowest layer relates to the physical communication lines interconnecting various user nodes of the network and where the highest level concerns the conversation per se between the various end users of the network.
In an attempt to standardize network architecture, the International Organization for Standardization (ISO) has adopted a model that is described by Hubert Zimmerman in an article entitled, "OSI Reference Model--The ISO Model of Architecture for Open Systems Interconnections," IEEE Transactions on Communications, April 1980. The model architecture consists of sevel layers, namely: physical, data link, network, transport, sessions, presentation and application layers. The present invention mainly concerns the transmission services layer of SNA, which relates to the methods used to transmit information across the network.
People who design computer networks are always looking for ways to control the flow of data in the network. Formats and protocols are used to control the flow of information between network entities or network nodes. Whereas protocols refer to the total set of rules that govern information exchange within the network, formats govern the structure of the exchanged message. The prior art sets forth several formats and protocols used to improve information flow. For example, U.S. Pat. No. 4,205,200 describes a technique for controlling the size of bytes making up a field of data to be serially transmitted from one station to another. Each message carries a first pre-header byte that contains information as to whether or not a change in the byte size of the data field is to occur and a second pre-header byte that contains information representative of the size of the change. U.S. Pat. No. 4,410,889 sets forth a technique for synchronizing stations that transmit variable length messages. U.S. Pat. No. 4,527,267 describes a technique for coupling the X.25 access protocol and the internal protocol of a utilization device. The X.25 access protocol contains a D-bit that indicates whether an acknowledgement of packet communication can be local or must be end-to-end. Finally, U.S. Pat. Nos. 4,517,669 and 4,519,068 describe formats for carrying variable length messages between units of a communications system.
Session-level pacing is another prior art technique used to control the flow of information in a communications network. Session level pacing allows a receiving logical unit (LU) in a structured architecture, such as SNA, to control the rate at which it receives data from a sending LU. In the past, pacing was done on a static basis. The receiving LU controls when the sending LU may send a window of packets, but the number of packets in a window is fixed at session activation and cannot be adjusted dynamically. A more detailed description of session-level pacing is given in Systems Network Architecture Format & Protocol Reference Manual: Architecture Logic (SC30-3112).
Even though fixed session-level pacing works well for its intended purposes, it creates unnecessary constraints on the systems. The constraints are particularly felt by systems that usually have relatively limited resources (such as storage, etc.) but still must service a large amount of data. Such systems require more flexible control over their scarce resources than that which is afforded by fixed session-level pacing.